package com.atguigu.gulimall.search.vo;

import com.atguigu.common.to.es.SkuEsModel;
import lombok.Data;

import java.util.List;

/**
 * 检索响应视图
 *
 * @author DuGuanghan
 * @since 2024-05-25 16:42:09
 */
@Data
public class SearchRespVO {
    /**
     * SKU的ES存储模型
     */
    private List<SkuEsModel> skuEsModelList;

    /**
     * 当前页码
     */
    private Integer pageNum;
    /**
     * 页码列表
     */
    private List<Integer> pageNumList;
    /**
     * 总记录数
     */
    private Long total;
    /**
     * 总页数
     */
    private Integer totalPages;

    private List<CatalogVO> catalogs;
    private List<BrandVO> brands;
    private List<AttrVO> attrs;
    private List<NavVO> navs;
    private List<Long> attrChecked;

    /**
     * 分类视图
     *
     * @author DuGuanghan
     * @since 2024-05-25 17:03:47
     */
    @Data
    public static class CatalogVO {
        /**
         * 分类ID
         */
        private Long categoryId;
        /**
         * 分类名称
         */
        private String categoryName;
    }

    /**
     * 品牌视图
     *
     * @author DuGuanghan
     * @since 2024-05-25 17:05:49
     */
    @Data
    public static class BrandVO {
        /**
         * 品牌ID
         */
        private Long brandId;
        /**
         * 品牌名称
         */
        private String brandName;
        /**
         * 品牌图片
         */
        private String brandImg;
    }

    /**
     * 属性视图
     *
     * @author DuGuanghan
     * @since 2024-05-25 17:07:17
     */
    @Data
    public static class AttrVO {
        /**
         * 属性编号
         */
        private Long attrId;
        /**
         * 属性名称
         */
        private String attrName;
        /**
         * 属性值
         */
        private List<String> attrValue;
    }

    /**
     * 面包屑导航信息
     *
     * @author DuGuanghan
     * @since 2024-06-26 16:25:18
     */
    @Data
    public static class NavVO {
        /**
         * 导航属性名称
         */
        private String name;
        /**
         * 导航属性值
         */
        private String value;
        /**
         * 导航链接参数
         */
        private String linkParam;
    }
}
